home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / TouchMe 1.1.1.sit / touchMe 1.11 Folder / CW9 PP source / source / CTouchMePref.cp < prev    next >
Text File  |  1996-08-08  |  8KB  |  365 lines

  1. // ==================================================
  2. //    CTouchMePref.cp
  3. //    Copyright (C) 1996 Mizutori Tetsuya, July 4 1996.
  4. // ==================================================
  5. //    All documents are pretty-printed in Geneva 10-point font.
  6.  
  7. #pragma once
  8.  
  9. #include <OSUtils.h>
  10.  
  11. //#include <UMemoryMgr.h>
  12. #include <LString.h>
  13.  
  14. #include "LPrefsFile.h"
  15. #include "CTouchMePref.h"
  16. #include "UDateTime.h"
  17.  
  18.  
  19. #define    isButtonOn( xState )        ( (xState) == Button_On )
  20. #define    nButtonValue( xBoolean )    ( (xBoolean) ? Button_On : Button_Off  )
  21.  
  22.  
  23. // --------------------------------------------------
  24. //        ・ CTouchMePref()
  25. // --------------------------------------------------
  26.  
  27. CTouchMePref::CTouchMePref()
  28. {
  29.     ::SetRect( &mWindowRect, 0, 0, 0, 0 );
  30. }
  31.  
  32.  
  33. // --------------------------------------------------
  34. //        ・ CTouchMePref()
  35. // --------------------------------------------------
  36.  
  37. CTouchMePref::CTouchMePref( 
  38.     ConstStr255Param    inFileName )
  39.         : LPrefsFile( inFileName )
  40. {
  41.     ::SetRect( &mWindowRect, 0, 0, 0, 0 );
  42. }
  43.  
  44.  
  45. // --------------------------------------------------
  46. //        ・ ~CTouchMePref
  47. // --------------------------------------------------
  48.  
  49. CTouchMePref::~CTouchMePref()
  50. {
  51. }
  52.  
  53.  
  54. // --------------------------------------------------
  55. //        ・ LoadPrefData
  56. // --------------------------------------------------
  57.  
  58. OSErr
  59. CTouchMePref::LoadPrefData( void )
  60. {
  61.     LoadPref( (Ptr) &mPrefRec, sizeof(SPrefRec) );
  62.     TransformStructToMember();
  63.  
  64.     return noErr;
  65. }
  66.  
  67.  
  68. // --------------------------------------------------
  69. //        ・ StorePrefData
  70. // --------------------------------------------------
  71.  
  72. OSErr
  73. CTouchMePref::SavePrefData()
  74. {
  75.     TransformMemberToStruct();
  76.     SavePref( (Ptr) &mPrefRec, sizeof(SPrefRec) );
  77.  
  78.     return noErr;
  79. }
  80.  
  81.  
  82. // --------------------------------------------------
  83. //        ・ TransformStructToMember
  84. // --------------------------------------------------
  85.  
  86. void
  87. CTouchMePref::TransformStructToMember( void )
  88. {
  89.     mVersion = mPrefRec.version;
  90.     SetWindowRect( mPrefRec.wframe );
  91.     SetSync( isButtonOn( mPrefRec.sync ) );
  92.  
  93.     for ( long k=touchType_CreationDate; k<touchType_END; k++ ) {
  94.         SetEnabled( (ETouchType) k, isButtonOn( mPrefRec.enabled[k] ) );
  95.  
  96.         for ( long i=touchFlag_Current; i<touchFlag_END; i++ )
  97.             SetFlag( (ETouchType) k, (ETouchFlag) i, (mPrefRec.flag[k]==i) );
  98.  
  99.         SetDateTime( (ETouchType) k, mPrefRec.datetime[k] );
  100.         //ConvertString2DateTime( (ETouchType) k );
  101.     }
  102. }
  103.  
  104.  
  105. // --------------------------------------------------
  106. //        ・ TransformMemberToStruct
  107. // --------------------------------------------------
  108.  
  109. void
  110. CTouchMePref::TransformMemberToStruct( void )
  111. {
  112.     mPrefRec.version = mVersion;
  113.     GetWindowRect( mPrefRec.wframe );
  114.     mPrefRec.sync = nButtonValue( GetSync() );
  115.  
  116.     for ( long k=touchType_CreationDate; k<touchType_END; k++ ) {
  117.         mPrefRec.enabled[k] = nButtonValue( GetEnabled( (ETouchType) k ) );
  118.  
  119.         for ( long i=touchFlag_Current; i<touchFlag_END; i++ )
  120.             if ( GetFlag( (ETouchType) k, (ETouchFlag) i ) ) mPrefRec.flag[k] = i;
  121.  
  122.         //ConvertDateTime2String( k );
  123.         mPrefRec.datetime[k] = GetDateTime( (ETouchType) k );
  124.     }
  125. }
  126.  
  127.  
  128. // --------------------------------------------------
  129. //        ・ SetWindowRect
  130. // --------------------------------------------------
  131.  
  132. void
  133. CTouchMePref::SetWindowRect(
  134.     const Rect &    inWindowRect )
  135. {
  136.     mWindowRect = inWindowRect;
  137. }
  138.  
  139.  
  140. // --------------------------------------------------
  141. //        ・ GetWindowRect
  142. // --------------------------------------------------
  143.  
  144. void
  145. CTouchMePref::GetWindowRect(
  146.     Rect &    outWindowRect )
  147. {
  148.     outWindowRect = mWindowRect;
  149. }
  150.  
  151.  
  152. // --------------------------------------------------
  153. //        ・ SetSync
  154. // --------------------------------------------------
  155.  
  156. void
  157. CTouchMePref::SetSync(
  158.     const Boolean    inStatus )
  159. {
  160.     mSync = inStatus;
  161. }
  162.  
  163.  
  164. // --------------------------------------------------
  165. //        ・ GetSync
  166. // --------------------------------------------------
  167.  
  168. Boolean
  169. CTouchMePref::GetSync( void )
  170. {
  171.     return mSync;
  172. }
  173.  
  174.  
  175. // --------------------------------------------------
  176. //        ・ SetEnabled
  177. // --------------------------------------------------
  178.  
  179. void
  180. CTouchMePref::SetEnabled(
  181.     const ETouchType    inType,
  182.     const Boolean        inStatus )
  183. {
  184.     mEnabled[ inType ] = inStatus;
  185. }
  186.  
  187. // --------------------------------------------------
  188. //        ・ GetEnabled
  189. // --------------------------------------------------
  190.  
  191. Boolean
  192. CTouchMePref::GetEnabled(
  193.     const ETouchType    inType )
  194. {
  195.     return mEnabled[ inType ];
  196. }
  197.  
  198.  
  199. // --------------------------------------------------
  200. //        ・ SetFlag
  201. // --------------------------------------------------
  202.  
  203. void
  204. CTouchMePref::SetFlag(
  205.     const ETouchType    inType,
  206.     const ETouchFlag        inFlag,
  207.     const Boolean        inStatus )
  208. {
  209.     if ( inStatus ) mFlag[ inType ] = inFlag;
  210. }
  211.  
  212.  
  213. // --------------------------------------------------
  214. //        ・ GetFlag
  215. // --------------------------------------------------
  216.  
  217. Boolean
  218. CTouchMePref::GetFlag(
  219.     const ETouchType    inType,
  220.     const ETouchFlag        inFlag )
  221. {
  222.     return ( mFlag[ inType ] == inFlag );
  223. }
  224.  
  225.  
  226. // --------------------------------------------------
  227. //        ・ SetFlagNumb
  228. // --------------------------------------------------
  229.  
  230. void
  231. CTouchMePref::SetFlagNumb(
  232.     const ETouchType    inType,
  233.     const ETouchFlag        inFlag )
  234. {
  235.     mFlag[ inType ] = inFlag;
  236. }
  237.  
  238.  
  239. // --------------------------------------------------
  240. //        ・ GetFlagNumb
  241. // --------------------------------------------------
  242.  
  243. ETouchFlag
  244. CTouchMePref::GetFlagNumb(
  245.     const ETouchType    inType )
  246. {
  247.     return ( mFlag[ inType ] );
  248. }
  249.  
  250.  
  251. // --------------------------------------------------
  252. //        ・ SetDateTime
  253. // --------------------------------------------------
  254.  
  255. void
  256. CTouchMePref::SetDateTime(
  257.     const ETouchType    inType,
  258.     const unsigned long    inValue)
  259. {
  260.     mDateTime[ inType ] = inValue;
  261.  
  262.     ConvertDateTime2String( inType );
  263. }
  264.  
  265.  
  266. // --------------------------------------------------
  267. //        ・ GetDateTime
  268. // --------------------------------------------------
  269.  
  270. unsigned long
  271. CTouchMePref::GetDateTime(
  272.     const ETouchType    inType )
  273. {
  274.     return mDateTime[ inType ];
  275. }
  276.  
  277.  
  278. // --------------------------------------------------
  279. //        ・ SetDateString
  280. // --------------------------------------------------
  281.  
  282. void
  283. CTouchMePref::SetDateString(
  284.     const ETouchType    inType,
  285.     const Str255        inDateStr)
  286. {
  287.     LString::CopyPStr( inDateStr,  mDateStr[ inType ] );
  288. //    ::BlockMoveData( (Ptr) inDateStr, (Ptr) mDateStr[ inType ], inDateStr[0]+1 );
  289.  
  290.     ConvertString2DateTime( inType );
  291. }
  292.  
  293.  
  294. // --------------------------------------------------
  295. //        ・ GetDateString
  296. // --------------------------------------------------
  297.  
  298. void
  299. CTouchMePref::GetDateString(
  300.     const ETouchType    inType,
  301.     Str255            outDateStr )
  302. {
  303.     LString::CopyPStr( mDateStr[ inType ], outDateStr );
  304. //    ::BlockMoveData( (Ptr) mDateStr[ inType ], (Ptr) outDateStr, mDateStr[ inType ][0]+1 );
  305. }
  306.  
  307.  
  308. // --------------------------------------------------
  309. //        ・ SetTimeString
  310. // --------------------------------------------------
  311.  
  312. void
  313. CTouchMePref::SetTimeString(
  314.     const ETouchType    inType,
  315.     const Str255        inTimeStr )
  316. {
  317.     LString::CopyPStr( inTimeStr,  mTimeStr[ inType ] );
  318. //    ::BlockMoveData( (Ptr) inTimeStr, (Ptr) mTimeStr[ inType ], inTimeStr[0]+1 );
  319.  
  320.     ConvertString2DateTime( inType );
  321. }
  322.  
  323.  
  324. // --------------------------------------------------
  325. //        ・ GetTimeString
  326. // --------------------------------------------------
  327.  
  328. void
  329. CTouchMePref::GetTimeString(
  330.     const ETouchType    inType,
  331.     Str255            outTimeStr)
  332. {
  333.     LString::CopyPStr( mTimeStr[ inType ], outTimeStr );
  334. //    ::BlockMoveData( (Ptr) mTimeStr[ inType ], (Ptr) outTimeStr, mTimeStr[ inType ][0]+1 );
  335. }
  336.  
  337. // --------------------------------------------------
  338. //        ・ ConvertString2DateTime
  339. // --------------------------------------------------
  340.  
  341. void
  342. CTouchMePref::ConvertString2DateTime(
  343.     const ETouchType    inType )
  344. {
  345.     UDateTime::DateTimeStringToSeconds(
  346.                 mDateStr[inType], mTimeStr[inType], mDateTime[ inType ] );
  347. }
  348.  
  349.  
  350. // --------------------------------------------------
  351. //        ・ ConvertDateTime2String
  352. // --------------------------------------------------
  353.  
  354. void
  355. CTouchMePref::ConvertDateTime2String(
  356.     const ETouchType    inType )
  357. {
  358.     UDateTime::SecondsToDateTimeString(
  359.                 mDateTime[ inType ], mDateStr[inType], mTimeStr[inType] );
  360. }
  361.  
  362.  
  363.  
  364. // end of program
  365.